import Vue from 'vue'
import Vuex from 'vuex'
import { resetRouter } from '@/router'
import { removeToken, setUserinfo } from '@/utils/auth'

Vue.use(Vuex);

const store = new Vuex.Store({
    state: {
		//是否折叠左侧菜单
		sidebarColl: false,
		//用户信息
		userinfo: '',
		//记录是否为主账号
		isMain:'',
		//批次列表
		batchList: [],
		//设备型号列表
		dTypeList: [],
		//省市列表
		addrList: [],
		//配送员列表
		portList: [],
		//角色列表
		roleList: [],
		//供应商列表
		suppList: [],
		//头部导航列表
		headerBar:'',
		//侧边栏一级路由状态
		siderbarOne:'',
		//侧边栏二级状态
		siderbarTwo:'',
		//table的loading状态
		tableLoad:false,
		//设备管理--设备属性--绑定加注站选择-新增--返回的时候--记录是返回的操作--要打开弹窗
		bindmacpop:false,
		//设备管理--设备属性--绑定加注站选择--新增加注站--返回的时候丢失选择的机器--用来存取机器id
		bindmacId:'',
		//用户角色拥有的权限按钮数据
		roleAuthBtns:[],
	},
    mutations: {
    	//存储用户的权限按钮
		setroleAuthBtns(state,arr){
			state.roleAuthBtns = arr;
		},
		//设备管理--设备属性--绑定加注站选择--新增加注站--返回的时候丢失选择的机器--用来存取机器id
    	setmacId(state,arr){
    		state.bindmacId = arr;
		},
		//设置-----设备管理--设备属性--绑定加注站选择-新增--返回的时候--记录是返回的操作--要打开弹窗
		setbindmacpop(state,arr){
			state.bindmacpop = arr;
		},
    	//设置table的loading状态
		setTableLoad(state,arr){
			state.tableLoad = arr;
		},
    	//设置侧边栏一级导航
		setsiderbarOne(state,arr){
			state.siderbarOne = arr;
		},
		//设置侧边栏二级导航
		setsiderbarTwo(state,arr){
			state.siderbarTwo = arr;
		},
    	//设置头导航状态
    	setheaderBar(state,arr){
    		state.headerBar = arr;
		},
		//设置供应商列表
		setSuppList(state, arr) {
			state.suppList = arr;
		},
		//设置角色列表
		setRoleList(state, arr) {
			state.roleList = arr;
		},
		//设置配送员列表
		setPortList(state, arr) {
			state.portList = arr;
		},
		//设置省市列表
		setAddrList(state, arr) {
			state.addrList = arr;
		},
		//设置设备型号列表
		setDTypeList(state, arr) {
			state.dTypeList = arr;
		},
		//设置批次列表
		setBatchList(state, arr) {
			state.batchList = arr;
		},
		//设置用户信息
		setUserinfo(state, str) {
			state.userinfo = str;
		},
		//设置用户的账号级别---主子账号
		setUserisMain(state,str){
			state.isMain = str;
		},
		//是否折叠左侧菜单
		setsidebarColl(state, bool) {
			state.sidebarColl = bool;
		},
		//退出登录
		logout(state) {
			//必须先清除token
			removeToken();
			resetRouter();
			setUserinfo('');
			state.userinfo = '';
		}
	},
    actions: {
		
	},
    modules: {
		
	}
});

Vue.prototype.$store = store;
